# 不定长的参数
# 定义一个函数，可以求任意个数字数字之和
# 在定义函数时，可以在形参前面加上一个*
# 这样这个形参将会获取到所有的实参，它将会
# 将所有的实参都保存到一个元组中


def sum(*a):
    # 定义一个变量，保存结果
    result = 0
    # 遍历元组，并将元组中的数进行累加
    for i in a:
        result += i
    print(result)


sum(1, 2, 3, 4)
# 带星号的参数只能有一个
# 带*的参数，可以和其它的参数配合使用


# **形参可以接收其它的关键字参数，它会将这些
# 这些参数统一保存到一个字典中
# 字典的key就是参数的名字，字典的value就是参数
# 的值
def fn3(**a):
    print("a =", a, type(a))


fn3(b=1, d=2, c=3)
# **形参也是只有一个，并且必须写在所有参数的最后
